// 定义权限类型接口，匹配iam_permission表结构
export interface Permission {
  perm_id: number // 唯一主键ID，自增长
  perm_code: string // 权限代码，格式为"资源:操作"
  perm_name: string // 权限名称，用于显示
  description?: string // 权限详细描述
  module_id?: string // 所属模块前缀
  perm_type: number // 权限类型(1:菜单权限, 2:操作权限, 3:数据权限)
  is_active: number // 权限是否激活(1:激活, 0:禁用)
  sort_order: number // 权限显示排序
  created_at?: string // 记录创建时间
  updated_at?: string // 记录最后更新时间
  created_by?: string // 记录创建者
  updated_by?: string // 记录最后更新者
  is_deleted: number // 软删除标志
  children?: Permission[] // 可选的子权限，用于树形结构展示
}

// 权限类型枚举
export const PERMISSION_TYPES = {
  MENU: 1,
  OPERATION: 2,
  DATA: 3
}

// 权限类型中文映射
export const PERMISSION_TYPE_LABELS: Record<number, string> = {
  1: '菜单权限',
  2: '操作权限',
  3: '数据权限'
}

// 定义创建权限时不需要的字段类型
export type CreatePermissionParams = Omit<Permission, 'perm_id' | 'created_at' | 'updated_at' | 'is_deleted'>

// 定义更新权限时的部分字段类型
export type UpdatePermissionParams = Partial<Permission>